package com.yl.rabbitmq.day12;

import com.rabbitmq.client.CancelCallback;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.DeliverCallback;
import com.yl.rabbitmq.utils.RabbitMQUtil;

/**
 * @author yangl
 */
public class Consumer {
    /**
     * 队列名称，一定要和生产者的名称一样
     */
    public static final String QUEUE_NAME = "hello";

    /**
     * 接收消息
     * @param args
     */
    public static void main(String[] args) throws Exception {

        Channel channel = RabbitMQUtil.getChannel();
        //声明接收消息
        DeliverCallback deliverCallback = (consumerTag, message)->{
            System.out.println(new String(message.getBody()));
        };
        //声明取消接收消息
        CancelCallback cancelCallback = consumerTag -> {
            System.out.println("消息消费被中断");
        };
        /**
         * 消费者消费消息
         * 1、消费哪个队列
         * 2、消费成功之后，是否要自动应答，true：自动应答，false：手动应答
         * 3、消费者未成功消费的回调
         * 4、消费者取消消费的回调
         */
        channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);
    }
}
